package SecondeStage.Networkprogramming.UDPFileUpload;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

public class UDPReceiverA {
    public static void main(String[] args) throws IOException {
        // 1. 创建一个 DatagramSocket对象，准备在9999接收数据
        DatagramSocket socket =new DatagramSocket(9999);
        // 2. 构建一个空的 DatagramPacket对象,准备接收数据
        // 一个UDP数据包最大限制在64k以内
        byte[] buf = new byte[1024];
        DatagramPacket datagramPacket = new DatagramPacket(buf, buf.length);
        // 3. 调用接收方法,填充到 datagramPacket对象
        // 当有数据包发送到本机的9999端口时，就会接收到数据；如果没有，本机的9999端口就会阻塞等待
        socket.receive(datagramPacket);
        // 4. 可以把packet进行拆包，取出数据并显示
        int length =datagramPacket.getLength(); //实际接收到的数据长度
        byte[] bytes = datagramPacket.getData(); // 接受到的数据
        String s = new String(bytes,0,length);
        System.out.println(s);
        // 5. 关闭资源
        socket.close();
        System.out.println("A端退出");
    }
}
